import request from '@/utils/request'
import qs from 'qs'

/**
 * 往左边添加value
 * @param {String} key list的key
 * @param {Json} values 要添加的数组，json格式
 * @returns {map:{"key":key,"values":values}}
 */
export function list_lpush(key, values) {
  return request({
    url: '/api/key/list/lpush',
    method: 'post',
    data: qs.stringify({
      key,
      values: JSON.stringify(values)
    })
  })
}
/**
 * 往右边添加value
 * @param {String} key list的key
 * @param {Json} values 要添加的数组，json格式
 * @returns {map:{"key":key,"values":values}}
 */
export function list_rpush(key, values) {
  return request({
    url: '/api/key/list/rpush',
    method: 'post',
    data: qs.stringify({
      key,
      values: JSON.stringify(values)
    })
  })
}
/**
 * 根据index修改xalue
 * @param {String} key list的key
 * @param {Long} index 索引
 * @param {String} oldValue 旧值，用于验证
 * @param {String} value 要修改的值
 * @returns {map:{"index":1,"value":"aaaa"}}
 */
export function list_lset(key, index, oldValue, value) {
  return request({
    url: '/api/key/list/lset',
    method: 'post',
    data: qs.stringify({
      key, index, value, oldValue
    })
  })
}

/**
 * 获取list
 * @param {String} key list的key
 * @param {Long} page 一页的数量
 * @param {Long} sizes 第几页,从1开始
 * @returns {map:{"total":100},list:[{"index":0,"key":"aaa"}]}
 */
export function list_lrange(key, page, sizes) {
  return request({
    url: '/api/key/list/lrange',
    method: 'post',
    data: qs.stringify({
      key, page, sizes
    })
  })
}

/**
 * 根据key index value 删除
 * @param {String} key list的key
 * @param {Long} index list的index
 * @param {String} value ndex对应的值，用来验证
 * @returns {map:{"index":index,"value":value}}
 */
export function list_del(key, index, value) {
  return request({
    url: '/api/key/list/del',
    method: 'post',
    data: qs.stringify({
      key, index, value
    })
  })
}

